package com.spider.strategy;

import com.spider.page.ResultPage;
import com.spider.pool.UriQueueScheduler;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpRequestBase;

/**
 * @author β世界
 * Created on 9:58
 * @Description 响应策略接口
 * 用于根据不同的响应内容来创建不同的Page实现策略
 */
public interface ResponseStrategy {

    /**
     * 获取处理的请求类型
     * @author β世界 on 10:16 2021/5/10
     * @return java.lang.String
     **/
    String[] getHandlerContentType();

    /**
     * 根据响应内容去创建相关的结果对象
     * @author β世界 on 10:04 2021/5/10
     * @param response: 响应结果
     * @param httpRequestBase: 请求内容
     * @param uriQueueScheduler: 连接池
     * @return com.spider.page.ResultPage
     **/
    ResultPage create(CloseableHttpResponse response, HttpRequestBase httpRequestBase, UriQueueScheduler uriQueueScheduler);

}
